package com.macro.mall.ums.service.register.bo;

import com.macro.mall.common.api.input.BaseInput;
import com.macro.mall.ums.enums.UserGenderEnum;
import com.macro.mall.ums.enums.UserSourceTypeEnum;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 根据微信移动应用注册
 *
 * @author xuyanjun
 * @date 2019-07-11
 */
@Getter
@Setter
@ToString
@Accessors(chain = true)
@Valid
public class RegisterByWxMpInput extends BaseInput {

    /**
     * 用户微信unionId
     */
    private String unionId;

    /**
     * 用户微信openId
     */
    @NotBlank(message = "openId不能为空。")
    private String openId;

    /**
     * 注册ip
     */
    private String registerIp;

    /**
     * 昵称
     */
    private String nickName;

    /**
     * 性别
     */
    private UserGenderEnum gender;

    /**
     * 用户所在市
     */
    private String city;

    /**
     * 用户所在省
     */
    private String province;

    /**
     * 用户所在县
     */
    private String country;

    /**
     * 头像地址
     */
    private String avatarUrl;

    /**
     * 注册来源枚举
     *
     * @see UserSourceTypeEnum
     */
    @NotNull(message = "注册来源枚举不能为空。")
    private UserSourceTypeEnum userSourceTypeEnum;

    /**
     * 推荐人id
     */
    private Long befId;
}
